home *** CD-ROM | disk | FTP | other *** search
- /* Copyright (c) 1994 Sun Wu, Udi Manber, Burra Gopal. All Rights Reserved. */
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <ctype.h>
- #include "re.h"
- #include "defs.h"
- #include "config.h"
- #include <fcntl.h>
- #include <unistd.h>
- #include <string.h>
-
- #define MAXNUM_PAT 32 /* 32 parts of a pattern = width of expression-tree */
- #define CHAR unsigned char
- #define MAXPAT 128
- #define MAXPATT 256
- #define MAXDELIM 8 /* Max size of a delimiter pattern */
- #define SHORTREG 15
- #define MAXREG 30
- #define MAXNAME 256
- #define Max_Pats 12 /* max num of patterns */
- #define Max_Keys 12 /* max num of keywords */
- #define Max_Psize 128 /* max size of a pattern counting all the characters */
- #define Max_Keyword 31 /* the max size of a keyword */
- #define WORD 32 /* the size of a word */
- #define MaxError 8 /* the max number of errors allowed */
- #define MaxRerror 4 /* the max number of erros for regular expression */
- #define MaxDelimit 16 /* the max raw length of a user defined delimiter */
- #define BlockSize 49152
- #define Max_record 49152
- #define SIZE 16384 /* BlockSIze in sgrep */
- #define MAXLINE 1024 /* maxline in sgrep */
- #define MAX_LINE_LEN 1024
- #define Maxline 1024
- #define RBLOCK 8192
- #define RMAXLINE 1024
- #define MaxNext 66000
- #define ON 1
- #define OFF 0
- #define Compl 1
- #define Maxresult 10000
- #define MaxCan 2500
- #define MAXSYM 256 /* ASCII */
- #define WORDB 241 /* -w option */
- #define LPARENT 242 /* ( */
- #define RPARENT 243 /* ) */
- #define LRANGE 244 /* [ */
- #define RRANGE 245 /* ] */
- #define LANGLE 246 /* < */
- #define RANGLE 247 /* > */
- #define NOTSYM 248 /* ^ */
- #define WILDCD 249 /* wildcard */
- #define ORSYM 250 /* | */
- #define ORPAT 251 /* , */
- #define ANDPAT 252 /* ; */
- #define STAR 253 /* closure */
- #define HYPHEN 237 /* - */
- #define NOCARE 238 /* . */
- #define NNLINE 239 /* special symbol for newline in begin of pattern*/
- /* matches '\n' and NNLINE */
- #define USERRANGE 236 /* max char in pattern of user: give warning */
-
- #define OUTPUT_OVERFLOW /* fprintf(stderr, "Output buffer overflow after %d bytes @ %s:%d !!\n", agrep_outpointer, __FILE__, __LINE__) */
- extern unsigned char *forward_delimiter(), *backward_delimiter();
- extern int exists_delimiter(), preprocess_delimiter();
- unsigned char *forward_delimiter(), *backward_delimiter();
- int exists_tcompressed_word();
- unsigned char * forward_tcompressed_word(), *backward_tcompressed_word();
-
- #define AGREP_VERSION "3.0"
- #define AGREP_DATE "1994"
-
-
- /* To parse patterns in asplit.c */
- #define AND_EXP 0x1 /* boolean ; -- remains set throughout */
- #define OR_EXP 0x2 /* boolean , -- remains set throughout */
- #define ATTR_EXP 0x4 /* set when = is next non-alpha char, remains set until next , or ; --> never used in agrep */
- #define VAL_EXP 0x8 /* set all the time except when = is seen for first time --> never used in agrep */
- #define ENDSUB_EXP 0x10 /* set when , or ; is seen: must unset ATTR_EXP now --> never used in agrep */
-
- #define INTERNAL 1
- #define LEAF 2
- #define NOTPAT 0x1000
- #define OPMASK 0x00ff
-
- typedef struct _ParseTree {
- short op;
- char type;
- char terminalindex;
- union {
- struct {
- struct _ParseTree *left, *right;
- } internal;
- struct {
- int attribute; /* never used in agrep */
- unsigned char *value;
- } leaf;
- } data;
- } ParseTree;
-
- #define unget_token_bool(bufptr, tokenlen) (*(bufptr)) -= (tokenlen)
-
- #define dd(a,b) 1
-